	// 回调函数(暂时弃用): isLoaded()
export const configMixin = {
	data() {
		return {
			loading: false,
			noneLoadList: [], // 没有资源（图片、视频）可以加载的项，用于手动获取高度
			dataList: [], // 准备渲染的数据
			intervalName: null, // 自动监控加载情况的定时器
			handInterval: null, // 监控手动处理加载情况的定时器
			leftList: [],
			leftH: 0,
			rightList: [],
			rightH: 0
		}
	},
	watch: {
		
	},
	mounted() {
	},
	beforeDestroy() {
		this.clear();
	},
	methods: {
		clear() {
			if (this.handInterval) {
				clearInterval(this.handInterval);
			} else if (this.intervalName) {
				clearInterval(this.intervalName);
			}
			this.handInterval = null;
			this.intervalName = null;
		},
		// 开始监控是否加载完毕
		startInterval() {
			// 为了避免渲染时父级继续上拉加载
			// uni.showLoading({
			// 	title: '加载中',
			// 	mask: true
			// });
			// if(this.loading)return
			// this.loading = true;
			this.loadNum = 0;
			this.clear();
			this.intervalName = setInterval(() => {
				// this.checkSuccess();
				if (this.loadNum >= 20) {
					// 加载时间太长了，手动处理:把没有加载好的图片当成无资源处理(也可以考虑给个固定高)
					clearInterval(this.intervalName);
					this.handlerDataList();
				} else {
					this.loadNum = this.loadNum + 1;
					this.checkSuccess();
				}
			}, 200);
		},
		// 判断资源是否已经加载结束
		checkSuccess() {
			let { dataList } = this;
			// 判断是否需要加载的图片、视频都加载好了
			let status = dataList.some(item => {
				return !item.templateInfo;
			});
			if (!status) {
				this.clear();
				let { leftH, rightH } = this;
				let leftList = [];
				let rightList = [];
				dataList.forEach(item => {
					if (leftH <= rightH) {
						leftList.push(item);
						leftH += item.templateInfo.itemH;
					} else {
						rightList.push(item);
						rightH += item.templateInfo.itemH;
					}
				});
				this.leftList = this.leftList.concat(leftList);
				this.rightList = this.rightList.concat(rightList);
				this.leftH = leftH;
				this.rightH = rightH;
				// this.loading = false
				// this.$emit('isLoaded') // 告诉父级页面，渲染完毕，可以继续加载了,
				// 现在使用 showLoading来避免父级上拉加载（）如果碍眼就用isLoaded(),要配合ladinging使用
				uni.hideLoading();
			}
		},
		// 修改某个数据项
		updateItem(item, index) {
			this.dataList[index] = item;
		},
		// 手动处理:把没有加载好的图片当成无资源处理(也可以考虑给个固定高)
		handlerDataList() {
			this.dataList.forEach((item, index) => {
				if (!item.templateInfo) {
					this.$refs.check_img.getH(item, index);
				}
			});
			this.handInterval = setInterval(() => {
				this.checkSuccess();
			}, 200);
		},
	}

}
